<template>
  <!-- 电梯列表 -- 电梯档案 -- (修改添加)电梯-->
  <div id="eleParent" class="page-operate addOrganization">
    <!-- 位置模块 -->
    <HeadTop></HeadTop>
    <div class="page-head">
      <span class="operate-text" v-text="mainTitle"></span>
      <div class="operate-box">
        <button @click="submitBtn" class="submit">提交</button>
      </div>
    </div>
    <!--添加电梯(登记、使用、安装、巡检维保)icon start-->

    <div class="ele-title-box">
      <ul>
        <li v-for="(item, index) in filesData" @click="changePage(index)">
          <div class="icon-box flex_box vertical horizontal" :class="{active:actived==index}">
            <i class="icon icon-ele" :style="{background: index == actived ? item.hover : item.url}"></i>
          </div>
          <p>{{item.title}}</p>
        </li>
      </ul>
    </div>
    <!--添加电梯(登记、使用、安装、巡检维保)icon end-->
    <div class="content-area content-area-ele-add content-sp">
      <!--content start-->
      <div class="tabBox form-detail">
        <div>
          <div v-show="page[0]">
            <!--登记信息-->
            <ele-register ref="eleRegister" v-bind:registerMessage="parentMsg"
                          v-on:listenToRASChildEvent="showMsgFromRASChild"></ele-register>
          </div>
          <div v-show="page[1]">
            <!--使用信息-->
            <ele-useing ref="eleUse" v-bind:useingMessage="parentMsg"
                        v-on:listenToUseChildEvent="showMsgFromUseChild"></ele-useing>

          </div>
          <div v-show="page[2]">
            <!--安装信息-->
            <ele-install ref="eleInstall" v-bind:installMessage="parentMsg"
                         v-on:listenToInstallChildEvent="showMsgFromInstallChild"></ele-install>
          </div>
          <div v-show="page[3]">
            <!--巡检维保信息-->
            <ele-insurance ref="eleInsurance" v-bind:installMessage="parentMsg"
                           v-on:listenToInsuranceChildEvent="showMsgFromInsuranceChild"></ele-insurance>
          </div>
        </div>
      </div>
      <!--content end-->
    </div>
  </div>
</template>
<script>
  import com from '../../../js/common'  // axios封装方法引入
  import HeadTop from "../../../components/head-top/head-top"
  // 引入组件
  import eleRegister from './information/eleRegister'
  import eleUseing from './information/eleUseing'
  import eleInstall from './information/eleInstall'
  import eleInsurance from './information/eleInsurance'

  import {eleUpdate, eleAdd, getEleDetail} from '@/api/getData'
  import {checkFields} from './eleEditAdd'

  export default {
    components: {
      eleRegister,
      eleUseing,
      eleInstall,
      eleInsurance,
      HeadTop
    },
    data() {
      return {
        actived: 0,
        // 当前父组件页面的数据
        parentMsg: {
          // 登记
          // regCoordinates: '',    // 安装坐标   (经度，纬度)  lng ,lat(后台暂定)
          registerUnit: '',         // 注册登记机构名称----------------------[string] 必填  有
          registerUnitCode: '',     // 注册登记单位编码----------------------[string] 必填  有
          registerCheckUnit: '',    // 电梯检验机构名称----------------------[string] 必填  有
          registerCode: '',         // 电梯注册码----------------------------[string] 必填  有
          registerCreateDate: '',   //注册登记日期---------------------------[string] 必填  有
          registerLicenceCode: '',  // 注册牌照编号--------------------------[string] 必填  有
          address: '',              // 地址信息------------------------------[string] 必填  有
          areaCode: '',             // 登记区域编码------------------[string] 必填  有
          street: '',             // 电梯所在街道
          community: '',        // 电梯所在社区
          entrance: '',       // 电梯详细地址-----------------------[string] 必填  有
          housingEstate: '',            // 小区名称-----------------------------[string] 必填  有
          registerUser: '',         // 注册登记人员-------------------------[string] 必填  有
          registerOperationUser: '',// 操作人员-----------------------------[string] 必填  有
          safetyCertificate: '',     // 安全检验合格证


          argsName: '',             // 电梯名称 -----------------------------[string] 必填  有
          argsBrand: '',            // 电梯品牌 -----------------------------[string] 必填  有
          argsSbNo: '',             // 电梯设备编号--------------------------[string] 必填  有
          argsTypeId: '',           // 电梯类型 -----------------------------[int] 必填  有
          argsLoadCapacity: null,     // 载重量 -------------------------------[int] 必填  有
          argsModel: '',            // 电梯型号 -----------------------------[string] 必填  有
          argsOverlay: '',          // 覆盖网络------------------------------[string] 必填  有
          argsControllType: '',     // 控制方式------------------------------[string] 必填  有
          argsStation: '',               // 站数
          argsFloor: '',               // 层数
          argsRatedSpeed: '',               // 额定速度
          argsDoor: '',                // 门数

          // 使用
          usingName: '',       			  // 使用单位名称------------------------------[string] 必填  有
          productedUnit: '',          // 产权单位名称------------------------------[string] 必填  有
          usingUnitId: '',   				    // 使用单位编码------------------------------[string] 必填  有
          productedUnitCode: '',      // 产权单位编码------------------------------[string] 必填  有
          usingInnerCode: '',         // 内部编码---------------------------------[string] 必填  有
          productedUnitAddress: '',   // 产权单位地址------------------------------[string] 必填  有
          usingUnitAddress: '',       // 使用单位地址------------------------------[string] 必填  有
          productedManagerLeader: '', // 产权管理负责人----------------------------[string] 必填  有
          productedManagerLeaderTel: '',  // 管理负责人电话------------------------[string] 必填  有
          usingSafeManager: '',       // 安全管理人员------------------------------[string] 必填  有
          usingSafeManagerTel: '',    // 安全管理人员手机--------------------------[string] 必填  有
          usingSafeDepart: '',    		// 安全管理部门名称--------------------------[string] 必填  有
          maintenanceType: '',        // 维保类型---------------------------------[string] 必填  有
          maintenanceUnit: '',        // 维保单位名称------------------------------[string] 必填  有
          usingDate: '',    					// 电梯投入使用日期--------------------------[string] 必填  有
          maintenanceUnitCode: '',    // 维保单位编码------------------------------[string] 必填  有
          maintenanceCycle: null,       // 维保周期---------------------------------[int] 必填  有
          maintenanceCertificateNo: '',   // 维保资格证书编号----------------------[string] 必填  有
          maintenanceRepairCycle: null,  // 大修周期 --------------------------------[int] 必填  有
          maintenancePerson: '',      // 维保人员---------------------------------[string] 必填  有
          maintenanceRepairDate: '',   // 最近一次大修日期--------------------------[string] 必填  有
          maintenanceTel: '',          // 维保联系方式 ----------------------------[string] 必填  有
          // 安装
          designUnit: '',                 // 设计单位名称------------------[string] 必填  有
          designCode: '',                 // 设计单位编码-----------------[string] 必填  有
          madeUnit: '',                   // 制造单位名称-----------------[string] 必填  有
          madeCode: '',                   // 制造单位编码-----------------[string] 必填  有
          madeCertificateNo: '',          // 制造许可证编号---------------[string] 必填  有
          madeDate: '',                   // 制造日期--------------------[string] 必填  有
          madeProductedNo: '',            // 出厂编号--------------------[string] 必填  有
          madeTel: '',                    // 制造联系电话-----------------[string] 必填  有
          designTel: '',                  // 设计单位联系电话--------------[string] 必填  有
          installUnit: '',                // 电梯安装单位名称--------------[string] 必填  有
          installCheckDate: '',           // 年检日期---------------------[string] 必填  有
          installCode: '',                // 安装单位编码-----------------[string] 必填  有
          installCheckNextDate: '',       // 下检日期---------------------[string] 必填  有
          installCertificateNo: '',       // 资格证书编号-----------------[string] 必填  有
          installBuildStartDate: '',      // 开始施工日期-----------------[string] 必填  有
          installProjectLeader: '',       // 安装单位项目负责人------------[string] 必填  有
          installAcceptUnit: '',          // 土建验收单位-----------------[string] 必填  有
          installTel: '',                 // 安装单位联系电话-------------[string] 必填  有
          installCompleteAccpetDate: '',  // 竣工验收日期-----------------[string] 必填  有
          installBuildUnit: '',           // 土建施工单位-----------------[string] 必填  有
          installCheckUnit: '',           // 竣工检验机构-----------------[string] 必填  有
          installCheckReportNo: '',       // 检查验收报告编号--------------[string] 必填  有
          installRegisterNo: '',          // 登记表编号--------------------[string] 必填  有
          installCheckTypeName: '',       // 检验类别名称------------------[string] 必填  有
          installCheckResultName: '',     // 检验结论名称------------------[string] 必填  有
          installRemark: '',               // 备注------------------------[string] 必填  有

          // 巡检保险信息
          prtrolUnitCode: '',             // 	巡检单位编码
          insuranceCode: '',             // 保险单位编码------------------[string] 必填  有
          insuranceContract: ''         // 合同编号-----------------------[string] 必填  有

        },
        mainTitle: '',
        choosed: 0,   // 标题索引
        registerCode: 0,    // 地址栏id
        filesData: [
          {
            title: '设备登记信息',
            url: 'url("/static/img/eleAdd/register.png")',
            hover: 'url("/static/img/eleAdd/register-b.png")'
          },
          {
            title: '设备使用信息',
            url: 'url("/static/img/eleAdd/use.png")',
            hover: 'url("/static/img/eleAdd/use-b.png")'
          },
          {
            title: '设备安装信息',
            url: 'url("/static/img/eleAdd/install.png")',
            hover: 'url("/static/img/eleAdd/install-b.png")'
          },
          {
            title: '巡检保险信息',
            url: 'url("/static/img/eleAdd/repair.png")',
            hover: 'url("/static/img/eleAdd/repair-b.png")'
          }
        ],
        page: [
          true,
          false,
          false,
          false,
        ]
      }
    },
    mounted() {
      // 获取地址栏id
      const registerCode = this.$route.query.registerCode
      this.registerCode = registerCode
      this.parentMsg.registerCode = registerCode
			if (registerCode) { // 修改
        this.mainTitle = "修改电梯档案"
        this.getEidtEleFilesData()   // 获取数据
      } else { // 添加
        this.mainTitle = "添加电梯档案"
      }
    },
    methods: {
      changePage(index) { // tab切换页面
        this.actived = index
        this.page = this.page.map((v, i) => i === index)
      },
      showMsgFromRASChild: function (data) {  // 接收(登记信息)
        const self = this
        self.parentMsg = Object.assign(self.parentMsg, data)
      },
      showMsgFromUseChild: function (data) {  // 接收(使用信息)
        const self = this
        self.parentMsg = Object.assign(self.parentMsg, data)
      },
      showMsgFromInstallChild: function (data) {  // 接收(安装信息)
        const self = this
        self.parentMsg = Object.assign(self.parentMsg, data)
      },
      showMsgFromInsuranceChild: function (data) {  // 接收(巡检保险信息)
        const self = this
        self.parentMsg = Object.assign(self.parentMsg, data)
      },

      // 通过id获取修改电梯档案数据
      getEidtEleFilesData() {
        const self = this
        getEleDetail({
          registerCode: self.registerCode
        }).then(function (data) {
          const curData = data.data.data
          self.parentMsg = Object.assign(curData.baseInfo, curData.extensionInfo)
        }).catch((data) => {
          this.$message.error(data.data.message)
        })

      },
      // 点击确定按钮
      submitBtn() {
        const registerCode = this.$route.query.registerCode   // 获取地址栏id
        this.registerCode = registerCode
        if (registerCode) { // 修改
          this.eidtEleFilesData()
        } else { // 添加
          this.$refs.eleRegister.sendRASMsgToParent()  // 登记数据
          this.$refs.eleUse.sendUseMsgToParent()  // 使用数据
          this.$refs.eleInstall.sendInstallMsgToParent()  // 安装数据
          this.$refs.eleInsurance.sendInsuranceMsgToParent() // 巡检维保数据
          this.addEleFilesData()
        }
      },

      // 校验必填信息是否填写
      checkEditEle() {
        return checkFields(this)
      },
      // 修改
      eidtEleFilesData() {

        if (!this.checkEditEle()) {
          return
        }
        const obj = this.parentMsg

        eleUpdate(obj).then((data) => {
          com.mask()
          this.$message.success({
            message: '操作成功',
            duration: 1500,
            onClose: () => {
              com.unmask()
              this.$router.push('/manage/eleFiles/eleList')
            }
          })
        }).catch((data) => {
          this.$message.error(data.data.message)
        })

      },

      addEleFilesData() {
        if (!this.checkEditEle()) {
          return
        }
        const obj = this.parentMsg
        eleAdd(obj).then((data) => {
          // 返回到上一页
          com.mask()
          this.$message.success({
            message: '添加成功',
            duration: 1500,
            onClose: () => {
              com.unmask()
              this.$router.push('/manage/eleFiles/eleList')
            }
          })
        }).catch((data) => {
          this.$message.error(data.data.message)
        })

      }
    }
  }
</script>

<style lang="scss" type="text/scss">
  @import '../../../style/entry/components/pageChildCommon';
  @import '../../../style/entry/components/tabDetail';
  @import '../../../style/entry/page/eleAdd';
</style>
